//package saas.adapter.sdk.core.interceptor;
//
//import com.google.common.base.Strings;
//import feign.RequestInterceptor;
//import feign.RequestTemplate;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.core.Ordered;
//import saas.adapter.sdk.constant.Constants;
//import saas.adapter.sdk.core.context.TenantConversionRelationHolder;
//import saas.adapter.sdk.entity.TenantConversionRelation;
//
///**
// * @title: OutboundFeignConversionTenantInterceptor
// * @description: Feign方式出口租户转换拦截器（本系统发送Feign请求给下游）
// * @author: guan.xin
// * @create: 2021-11-12 12:21
// * @since: JDK8
// */
//@Slf4j
//public class OutboundFeignConversionTenantInterceptor implements RequestInterceptor, Ordered {
//
//    @Override
//    public void apply(RequestTemplate requestTemplate) {
//        // 在租户转换关系上下文中获取信息
//        TenantConversionRelation tenantConversionRelation = TenantConversionRelationHolder.get();
//
//        // 映射配置校验（warn）
//        if (Strings.isNullOrEmpty(tenantConversionRelation.getMpTenantCode())) {
//            log.warn("url：{}, thread id：{}, 无法映射中台租户信息", requestTemplate.request().url(), Thread.currentThread().getId());
//        } else {
//            // 重置header为中台租户编码
//            log.info("请求url：{}, thread id：{}, 成功映射中台租户信息, 中台租户：{}", requestTemplate.request().url(), Thread.currentThread().getId(), tenantConversionRelation.getMpTenantCode());
//            requestTemplate.header(Constants.SAAS_TENANT_CODE_FIELD, tenantConversionRelation.getMpTenantCode());
//        }
//    }
//
//    @Override
//    public int getOrder() {
//        // 定义RequestInterceptor的优先级，优先级需要高于saas的RequestInterceptor
//        return Ordered.LOWEST_PRECEDENCE;
//    }
//}
